"""
set和frozenset

set 集合
frozenset (不可变集合)

集合的特点：
    1.无序
    2.不重复
    3.性能高
"""


def use_set():
    # 不重复
    user_set = set(["Kevin", "Bob", "Kevin"])
    print(user_set)
    # 输出结果：
    """
    {'Bob', 'Kevin'}
    """

    # 不可变集合，可以作为dict的key
    user_dict = dict()
    user_key = frozenset(["Kevin", "Bob", "Kevin"])
    user_dict[user_key] = 18
    print(user_dict)
    # 输出结果：
    """
    {frozenset({'Bob', 'Kevin'}): 18}
    """

    # 向set中添加数据
    user_set.add("Tom")
    print(user_set)
    # 输出结果：
    """
    {'Tom', 'Bob', 'Kevin'}
    """

    # 合并set
    other_set = set(["Coco"])
    user_set.update(other_set)
    print(user_set)
    # 输出结果：
    """
    {'Coco', 'Tom', 'Kevin', 'Bob'}
    """

    # 集合运算
    num_set = set([1, 2, 4, 6])
    other_num_set = set([2, 5, 8, 6])

    # 差集
    print(num_set.difference(other_num_set))
    print(num_set - other_num_set)
    # 输出结果：
    """
    {1, 4}
    {1, 4}
    """

    # 交集
    print(num_set & other_num_set)
    # 输出结果：
    """
    {2, 6}
    """

    # 并集
    print(num_set | other_num_set)
    # 输出结果：
    """
    {1, 2, 4, 5, 6, 8}
    """

    if 2 in num_set:
        print("2 在集合中")
    # 输出结果：
    """
    2 在集合中
    """


if __name__ == '__main__':
    use_set()
